#include "bmp.h"
#include "touch.h"
#include "lcd.h"
#include <string.h>
#include <signal.h>

char *mp3_name[] = {"1.mp3","2.mp3","3.mp3"};
char temp[100] = {0};	//用来拼凑 system函数要执行的程序字符串

void my_signal(int signum)
{
    if(signum == SIGINT)
    {
        system("killall -9 madplay");       //杀死madplay放歌的进程
        system("killall -9 system");        //杀死system进程 （system是您执行的那个程序名）
        exit(0); //结束进程
    }
}

//主函数
int main(void)
{
    int rs = 0;
    int i = 0; 
    pid_t  pid = 0;
    int j = 0;
    
    /* 捕捉了SIGINT信号（Ctrl+C），当用户按下 Ctrl+C结束父进程时，会自动去执行 my_signal 函数 */
    signal(SIGINT,my_signal);
    
    pid = fork();
    if(pid > 0)
    {
		//打开屏幕
		lcd_init();
		//触摸
		while (1)
		{
		    rs = get_inputeven();
		    if (1 == rs || 3 == rs)
		    {
		        if (8 == ++i)
		        {
		            i = 0;
		        }
		        bmp_show(bmpname[i]);
		    }
		    else if (2 == rs || 4 == rs)
		    {
		        if (-1 == --i)
		        {
		            i = 7;
		        }
		        bmp_show(bmpname[i]);
		    }
		    else if(0 == rs && slide_flag==1)
		    {
		    	bmp_player();
		    	slide_flag=0;
		    	bmp_show(bmpname[i]);//回到原来的图片位置
		    }
		}

		//关闭屏幕
		lcd_uninit();
    }
    else if(pid == 0)
    {
        
        while(1)
        {
            memset(temp,0,sizeof(temp));	//清空temp数组中的内容
            sprintf(temp,"madplay  %s",mp3_name[j++]); //把音乐名和madplay 组合成 "madplay 音乐名" 格式的字符串，以便system函数执行
            if(j == 3) //只有三首歌，放完后又从头开始
            {
                j = 0;
            }
            
        	//system("madplay end.mp3");	//实现放歌，并且此函数是在命令行执行 参数指定的程序，并不会替换代码
        	system(temp);
            //当刚刚的音乐播放完后，system函数也会返回
        } 
    }
    
    return 0;
}

